package com.cgc.venus.server.user.inter;

import com.cgc.venus.server.core.exception.VenusException;
import com.cgc.venus.server.user.bean.NodeDataBean;
import com.cgc.venus.server.user.bean.PhysicalGroupBean;

import java.util.List;
import java.util.Map;

/**
 * Created by xiaobin on 2017/9/8.
 */
public interface InfrastructureService {
    /**
     * @parm queryKey
     * 根据关键字查询物理分组信息
     */
    public List<PhysicalGroupBean> physicalLists(String queryKey)throws VenusException;
    /**
     *@parm physicialId
     *根据物理分组的ID获取物理英文名称
     */
    public String physicalQueryById(String physicialId) throws VenusException;

    /**
     * @parm name
     * @parm type
     * 物理分组中英文名称重复性校验
     */
    public boolean validatePhysicalName(String name,String type)throws VenusException;

    /**
     * 根据物理分组的ID删除数据
     */
    public boolean physicalDelById(String seletctID)throws VenusException;

    /**
     * 根据物理分组的ID更新数据
     */
    public boolean physicalUpdateById(String selectId,int selectRadio,String seletctDescribed) throws VenusException;
    /**
     * 插入数据到物理分组
     */
    public boolean physicalSave(PhysicalGroupBean physicalGroup)throws VenusException;

//    节点维护接口--start
    /*
    查询物理分区的所有中文名称和ID信息
     */
    public List<Map<String,Object>> partitionQuery() throws VenusException;
    /*
    查询k8s中的节点运行详细情况包括CPU,内存，磁盘使用，容器数量
     */
    public List<NodeDataBean> nodeDataQuery() throws VenusException;

    /*
    设置节点标签
     */
    public boolean nodeLabelSet(String nodeName,Map<String,String> labels) throws VenusException;

    /*
获取node物理分组的标签
*/
    public List<String> nodeLabelQuery() throws VenusException;

//    /*
//    根据标签来查询标签所在的节点信息
//     */
//    public List<NodeDataBean> nodeQueryByLabel(String label) throws VenusException;



//节点维护接口--end

}
